function $exportExcel(formId, url) {
    layer.load(2, {
        shade: [0.5, 'gray'], //0.5透明度的灰色背景
        content: '正在导出，请稍后...',
        success: function (layero) {
            layero.find('.layui-layer-content').css({
                'padding-top': '39px',
                'width': '200px'
            });
        }
    });
    var downloadToken = +new Date();
    try {
        var queryForm = $("#" + formId);
        var exportForm = $("<form action='" + url + "' method='post'></form>")
        exportForm.append("<input type='hidden' name='downloadToken' value='" + downloadToken + "'/>")
        queryForm.find("input").each(function() {
            var name = $(this).attr("name");
            var value = $(this).val();
            exportForm.append("<input type='hidden' name='" + name + "' value='" + value + "'/>")
        });

        queryForm.find("select").each(function() {
            var name = $(this).attr("name");
            var value = $(this).val();
            exportForm.append("<input type='hidden' name='" + name + "' value='" + value + "'/>")
        });

        $(document.body).append(exportForm);
        exportForm.submit();
        function checkToken() {
            //前端实时监测时间戳和后台设置的cookie值是否相等，相等就说明文件下载成功，就可以关闭提示框
            var token = getCookie("downloadToken");
            console.log(token);
            if (token && token == downloadToken) {
                clearTimeout(downloadTimer);
                layer.closeAll();//关闭提示框
            }
        }
        var downloadTimer = setInterval(checkToken, 1000);
    } catch (e) {
        console.log(e);
    } finally {
        exportForm.remove();
    }
}

/**
 * 公共自定义表格导出事件（表格导出公共方法，实例见地域管理中的导出，注意，不是一调用此方法就能导出了，还要写导出的controller方法，只不过相对以前导出简单很多）
 * @param tableIns  table.render返回对象
 * @param exportType 类型 xls/csv
 * @param url 请求导出方法，不填取默认，默认为表格查询url+"/toExport"
 */
function commExportExcel(tableIns, exportType, url){
    var cols= tableIns.config.cols[0];
    var colStr= [];
    for(var n = 0; n < cols.length; n++) {
        if(cols[n].field){
            colStr.push(cols[n].field+","+cols[n].title);
        }
    }
    if(!url){//没填的话取默认，可以少写点代码
        url= tableIns.config.url+"/toExport"; //表格url一般格式为查询url+"/toExport"
    }
    var params= tableIns.config.where; //reload里要保存，否则where只是第一次初始化时的值
    if(!params){
        params={};
    }
    params.exportType= exportType;
    params.cols= colStr.join(";");
    layer.load(2, {
        shade: [0.5, 'gray'], //0.5透明度的灰色背景
        content: '正在导出，请稍后...',
        success: function (layero) {
            layero.find('.layui-layer-content').css({
                'padding-top': '39px',
                'width': '200px'
            });
        }
    });
    var downloadToken = +new Date();
    try {
        var exportForm = $("<form action='" + url + "' method='post'></form>");
        exportForm.append("<input type='hidden' name='downloadToken' value='" + downloadToken + "'/>");
        for(var param in params){
            exportForm.append("<input type='hidden' name='" + param + "' value='" + params[param] + "'/>")
        }
        $(document.body).append(exportForm);
        exportForm.submit();
        function checkToken() {
            //前端实时监测时间戳和后台设置的cookie值是否相等，相等就说明文件下载成功，就可以关闭提示框
            var token = getCookie("downloadToken");
            console.log(token);
            if (token && token == downloadToken) {
                clearTimeout(downloadTimer);
                layer.closeAll();//关闭提示框
            }
        }
        var downloadTimer = setInterval(checkToken, 1000);
    } catch (e) {
        console.log(e);
    } finally {
        exportForm.remove();
    }
}